#pragma once

/*
@author: TriLVH
@description: bullet container data 
*/

#include "BulletEntity.h"

#define HM_BULLET std::map<int, BulletEntity*>

class BulletContainerData {
public:
	/* Bullet hash map to manage bullet */
	HM_BULLET* bullets;
	/* Min delay time between 2 bullet */
	int delayOfTwoBullets;
	/* Max bullet at the same time */
	int maxBulletAtTheSame;
	/* Live distance of bullet from actor */
	int distanceForLive;
	/* Current bullet fired */
	int currentBulletFired;
	/* Army of bullet */
	BulletArmies bulletArmy;
	/* Bullet type to check what bullet will be fired */
	int bulletType;
	/* Current fire counter time */
	int currentFireCounterTime;
	/* Actor rectangle */
	Rect* actorRect;

	/* Constructor to init data */
	BulletContainerData(Rect* actorRect, BulletArmies bulletArmy);

	/* Update data */
	void updateData(int distanceForLive, int delayOfTwoBullet, int maxBulletAtTheSame, int bulletType);
};